@echo off
rem 设置UTF-8编码，防止中文乱码
chcp 65001 > nul

rem ========================================
rem 若依运销系统启动脚本 (推荐版本)
rem ========================================

title 若依运销系统启动器

echo.
echo ==========================================
echo           若依运销系统启动器
echo ==========================================
echo.

rem 1. 检查Java环境
echo 正在检查Java环境...
where java > nul 2>&1
if %errorlevel% neq 0 (
    echo ❌ 错误：未找到Java环境，请安装JDK或JRE
    pause
    exit /b 1
) else (
    echo ✅ Java环境检查通过
)

rem 2. 设置项目路径
set "PROJECT_PATH=%~dp0"
set "JAR_PATH=%PROJECT_PATH%ruoyi-admin\target\ruoyi-admin.jar"

echo 正在检查jar包...
if not exist "%JAR_PATH%" (
    echo ❌ 错误：jar包不存在
    echo    路径：%JAR_PATH%
    echo    请先运行：mvn clean package
    pause
    exit /b 1
) else (
    echo ✅ jar包检查通过
)

rem 3. 创建日志目录
set "LOG_PATH=%PROJECT_PATH%logs"
if not exist "%LOG_PATH%" (
    mkdir "%LOG_PATH%"
    echo ✅ 已创建日志目录
)

rem 4. JVM参数配置
rem 内存设置：初始512MB，最大1GB
rem 垃圾收集器：G1GC（适合大内存应用）
rem 编码设置：UTF-8（防止中文乱码）
rem 时区设置：Asia/Shanghai
set JAVA_OPTS=-server
set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx1024m
set JAVA_OPTS=%JAVA_OPTS% -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m  
set JAVA_OPTS=%JAVA_OPTS% -XX:+UseG1GC -XX:MaxGCPauseMillis=200
set JAVA_OPTS=%JAVA_OPTS% -Dfile.encoding=UTF-8
set JAVA_OPTS=%JAVA_OPTS% -Duser.timezone=Asia/Shanghai
set JAVA_OPTS=%JAVA_OPTS% -Djava.awt.headless=true

rem 5. 应用参数配置
set APP_OPTS=--spring.profiles.active=prod
set APP_OPTS=%APP_OPTS% --server.port=8080
set APP_OPTS=%APP_OPTS% --logging.file.path=%LOG_PATH%

rem 6. 显示启动信息
echo.
echo ==========================================
echo              启动信息
echo ==========================================
echo 📁 项目路径：%PROJECT_PATH%
echo 📦 jar包：ruoyi-admin.jar
echo 📋 日志目录：%LOG_PATH%
echo 💾 初始内存：512MB
echo 💾 最大内存：1GB
echo 🌐 访问端口：8080
echo 🔗 访问地址：http://localhost:8080
echo ==========================================
echo.

echo 🚀 正在启动若依运销系统...
echo 💡 提示：启动完成后会自动打开浏览器
echo 💡 提示：按 Ctrl+C 可以停止服务
echo.

rem 7. 启动应用
java %JAVA_OPTS% -jar "%JAR_PATH%" %APP_OPTS%

rem 8. 应用退出处理
if %errorlevel% equ 0 (
    echo.
    echo ✅ 应用正常退出
) else (
    echo.
    echo ❌ 应用异常退出，错误码：%errorlevel%
    echo 💡 请检查日志文件：%LOG_PATH%
)

echo.
echo 按任意键退出...
pause > nul